#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <unistd.h>

//参考博客：https://blog.csdn.net/qq_38113006/article/details/105539262
//  https://blog.csdn.net/sinat_16643223/article/details/120207003

int main(void)
{
    int ret;
    // 1、使用socket()函数获取一个TCP客户端socket文件描述符
	int tcp_client = socket(AF_INET, SOCK_STREAM, 0);
    if (-1 == tcp_client)
	{
		perror("socket");
		return -1;
	}

    // 2、准备服务端的地址和端口，'192.168.0.107'表示目的ip地址，12341表示目的端口号
    struct sockaddr_in server_addr = {0};	
	server_addr.sin_family = AF_INET;                           // 设置地址族为IPv4
	server_addr.sin_port = htons(2000);						// 设置地址的端口号信息
	server_addr.sin_addr.s_addr = inet_addr("192.168.42.200");	//　设置IP地址
        //server_addr.sin_port = htons(8081);
        //server_addr.sin_addr.s_addr = inet_addr("192.168.200.180");

    // 3、链接到服务器
    ret = connect(tcp_client, (const struct sockaddr *)&server_addr, sizeof(server_addr));
    if (ret < 0)
		perror("connect");
    else
	    printf("connect result, ret = %d.\n", ret);

    // 4. 发送数据到服务端
	//char sendbuf[]={"hello world."};
        char sendbuf[]={"\xEB\x90\x0A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x88\x0F\x07\x00\x00\x00\x00\x00\x00\x68\x5e"};
        //char sendbuf[]={"\xEB\x90\x0A\x40\x88\x0F\x07\x00\x00\x00\x00\x00\x00\x68\x5e"};
	//ret = send(tcp_client, sendbuf, strlen(sendbuf),0);
        ret = send(tcp_client, sendbuf, 24,0);

    // 5、等待接收服务端发送过来的数据，最大接收1024个字节
    char recvbuf[1024] = {0};
    ret = recv(tcp_client, recvbuf, sizeof(recvbuf), 0);

    // 6、将接收到的数据打印出来
    printf("Recvdate:%s \n",recvbuf);

    // 7、关闭套接字
    close(tcp_client);
}

